Batch Script লিখতে গেলে, সঠিক স্ট্রাকচার এবং অর্গানাইজেশন খুবই গুরুত্বপূর্ণ। একটি পরিষ্কার এবং সুসংগঠিত স্ক্রিপ্ট আপনার কাজকে আরও সহজ এবং রক্ষণাবেক্ষণযোগ্য করে তোলে। এখানে কিছু মূল বিষয় রয়েছে যা Batch Script এর স্ট্রাকচার এবং অর্গানাইজেশন নিশ্চিত করতে সাহায্য করবে।
একটি Batch Script সাধারণত বেশ কয়েকটি অংশ নিয়ে গঠিত থাকে, যেমন:
@echo off
rem স্ক্রিপ্টের শুরু
rem আপনার স্ক্রিপ্টের কাজ এখানে
:: এখানে কিছু কমান্ড থাকতে পারে
exit
Batch Script লেখার সময় কমেন্ট করা খুবই গুরুত্বপূর্ণ, কারণ এটি কোডকে আরও স্পষ্ট এবং পাঠযোগ্য করে তোলে। Batch Script এ কমেন্ট করতে rem বা :: ব্যবহার করা হয়।
rem কমান্ড: এটি একটি কমেন্ট শুরু করে, যা স্ক্রিপ্টের মধ্যে কোনো কার্যকরী প্রভাব ফেলে না।
rem এই অংশটি স্ক্রিপ্টের ব্যাখ্যা দেয়
:: কমান্ড: এটি একটি বিকল্প পদ্ধতি যা সাধারণত কমেন্ট লেখার জন্য ব্যবহৃত হয়।
:: এটি একটি কমেন্ট
কমেন্ট সাধারণত স্ক্রিপ্টের কার্যকরী অংশের ব্যাখ্যা দিতে, পরবর্তী একজন ডেভেলপার বা নিজেকে বোঝাতে ব্যবহৃত হয়।
Batch Script গুলোর স্ট্রাকচার ঠিক রাখতে, কিছু সুসংগত কৌশল এবং প্র্যাকটিস অনুসরণ করা উচিত:
ভেরিয়েবল ডিক্লারেশন:
set VAR_NAME=Value
ফাংশন এবং সাবরুটিন:
:myFunction
echo This is a function
goto :eof
এখানে, goto :eof
হল "End of File" নির্দেশনা, যা ফাংশন শেষে স্ক্রিপ্টের কার্যকারিতা বন্ধ করে দেয়।
ফাইল এবং ডিরেক্টরি ম্যানেজমেন্ট:
:createDirectory
mkdir C:\ExampleFolder
goto :eof
লজিকাল অপারেশন:
if %VAR_NAME%==Value (
echo Variable matches
)
Batch Script এর কোড লিখতে গেলে কিছু কৌশল এবং নিয়ম অনুসরণ করা উচিত:
স্পেস এবং ইনডেন্টেশন:
if %VAR_NAME%==Value (
echo This is indented
)
পরিষ্কার ফাংশন এবং সাবরুটিন ব্যবহার:
:checkStatus
if %status%==1 (
echo Success
) else (
echo Failure
)
goto :eof
সঠিক নামকরণ কনভেনশন:
:createFile
echo Hello World > file.txt
goto :eof
Error Handling:
if %errorlevel% neq 0 (
echo Error occurred!
exit /b 1
)
Batch Script মডুলার এবং পুনঃব্যবহারযোগ্য রাখতে, আপনি একাধিক স্ক্রিপ্ট ফাইল তৈরি করতে পারেন এবং এগুলো একে অপরকে ইনক্লুড করতে পারেন।
Include External Batch File:
call
কমান্ড ব্যবহার করতে পারেন।call script2.bat
লজিক্যাল গ্রুপিং:
:: Configuration Section
set CONFIG_PATH=C:\Path
:: File Operation Section
call :createFile
:: Logic Section
call :checkStatus
এটি Batch Script লেখার একটি ভালো অভ্যাস যা আপনার স্ক্রিপ্টকে আরও শক্তিশালী এবং সুসংগঠিত করে তুলবে।
Batch Script-এ comments ব্যবহার করা কোডের অংশ যা স্ক্রিপ্টের কার্যকারিতাকে প্রভাবিত করে না, তবে এটি কোডের ব্যাখ্যা বা নোট হিসেবে ব্যবহৃত হয়। কমেন্টস স্ক্রিপ্টের মধ্যে কোডের উদ্দেশ্য, কাজ বা অন্য কোনো গুরুত্বপূর্ণ তথ্য ব্যাখ্যা করতে সাহায্য করে, যা অন্য ডেভেলপার বা ভবিষ্যতে নিজেই কোডটি দেখতে গেলে বুঝতে সুবিধা হয়।
Batch Script-এ দুটি প্রধান কমেন্ট সিস্টেম রয়েছে: REM এবং ::। এগুলো কোডের পাঠযোগ্যতা উন্নত করতে এবং স্ক্রিপ্টের উদ্দেশ্য বা কার্যকলাপ সম্পর্কে পরিষ্কার ধারণা দেওয়ার জন্য ব্যবহৃত হয়।
REM (Remark) হলো Batch Script-এ মন্তব্য যোগ করার জন্য ঐতিহ্যবাহী কমান্ড। এটি ব্যবহার করে আপনি যে কোনো লাইন বা অংশকে মন্তব্য হিসাবে চিহ্নিত করতে পারেন, এবং এটি স্ক্রিপ্টের কার্যকারিতাকে প্রভাবিত করে না।
সিনট্যাক্স:
REM এখানে আপনার মন্তব্য লিখুন
যেকোনো লাইন যেটি REM দিয়ে শুরু হয়, তা স্ক্রিপ্টে মন্তব্য হিসেবে গণ্য হবে এবং কার্যকর হবে না।
উদাহরণ:
REM এই স্ক্রিপ্টটি লগ ফাইল তৈরি করবে
echo Hello, World! > logfile.txt
এখানে, REM
ব্যবহার করে "এই স্ক্রিপ্টটি লগ ফাইল তৈরি করবে" একটি মন্তব্য হিসেবে উল্লেখ করা হয়েছে, যা স্ক্রিপ্টের কার্যকারিতাকে প্রভাবিত করবে না।
:: হলো আরও একটি জনপ্রিয় কমেন্ট সিস্টেম, যা কার্যকরীভাবে REM
এর মতোই কাজ করে। এটি খুবই জনপ্রিয় Batch Script ডেভেলপারদের মধ্যে, কারণ এটি দেখতে অনেকটা লেবেল বা GOTO
কমান্ডের মতো মনে হয়, তবে এটি একটি কমেন্ট হিসেবে কাজ করে।
সিনট্যাক্স:
:: এখানে আপনার মন্তব্য লিখুন
এটি সাধারণত কমেন্ট যোগ করার জন্য ব্যবহৃত হয়, এবং স্ক্রিপ্টের কার্যকারিতার জন্য কোন পরিবর্তন সাধন করে না।
উদাহরণ:
:: এই স্ক্রিপ্টটি একটি লগ ফাইল তৈরি করবে
echo Hello, World! > logfile.txt
এখানে, ::
দিয়ে দেওয়া মন্তব্যটি স্ক্রিপ্টের কার্যকারিতাকে প্রভাবিত করবে না, শুধু কোডের ব্যাখ্যা হিসেবে থাকবে।
REM
ব্যবহার করা ঐতিহ্যবাহী কমেন্ট সিস্টেম, যা Batch Script-এর পুরোনো সংস্করণ থেকে এসেছে।::
কমেন্ট সিস্টেমটি আধুনিক স্ক্রিপ্টিংয়ে বেশি ব্যবহৃত হয় এবং এটি কোডের মধ্যে দ্রুত এবং সংক্ষিপ্ত মন্তব্য লেখার জন্য জনপ্রিয়।REM
সাধারণত একক লাইন কমেন্টের জন্য ব্যবহৃত হয় এবং কোডের পরবর্তী অংশে পুনরায় REM
ব্যবহার করা যেতে পারে।::
কখনও কখনও ব্লক কমেন্টের মতো ব্যবহৃত হয়, তবে এটি কোডের মধ্যে প্রভাব ফেলতে পারে না, সুতরাং বেশিরভাগ সময়েই একক লাইন মন্তব্য হিসেবে ব্যবহার করা হয়।REM
লেখার সময় কিছু অতিরিক্ত জায়গা ব্যবহার করতে হয়, যেমন REM
এবং কমেন্টের মধ্যে স্পেস দেওয়া, যার ফলে কিছুটা অসুবিধা হতে পারে।::
ব্যবহার করলে আপনি কিছুটা স্বাভাবিকভাবে এবং দ্রুত কমেন্ট লিখতে পারেন, যেহেতু এর পরবর্তী অংশটি অবিলম্বে ব্যাখ্যা হিসেবে চিহ্নিত হয়।কোনো স্ক্রিপ্টের মধ্যে পুরো কার্যক্রমের ব্যাখ্যা দিয়ে মন্তব্য করা:
:: =======================================
:: এই স্ক্রিপ্টটি একটি ব্যাকআপ সিস্টেম
:: তৈরি করবে এবং সিস্টেমের ফাইল ব্যাকআপ
:: করবে।
:: =======================================
echo Starting backup process...
REM এখানে ব্যাকআপ ফাইলটি তৈরি করা হবে
robocopy C:\data D:\backup /E
echo Backup completed successfully!
এই স্ক্রিপ্টে, ::
এবং REM
কমেন্টের মাধ্যমে স্ক্রিপ্টের উদ্দেশ্য এবং প্রতিটি ধাপ ব্যাখ্যা করা হয়েছে।
Batch Script-এ comments ব্যবহার কোডের কার্যকারিতা না বদলিয়ে স্ক্রিপ্টের ব্যাখ্যা, উদ্দেশ্য বা কাজ সম্পর্কে তথ্য প্রদান করে। REM
এবং ::
দুটি কমেন্ট সিস্টেম ব্যবহার করা যেতে পারে, তবে ::
সাধারণত আরও দ্রুত এবং সহজে ব্যবহৃত হয়। উপযুক্ত মন্তব্য কোডের পঠনযোগ্যতা এবং কার্যকারিতা বুঝতে সাহায্য করে, এবং পরবর্তীতে স্ক্রিপ্টটি পরিচালনা বা সংশোধন করতে সহায়ক হয়।
Batch Script-এর গঠন এবং কোড অর্গানাইজেশন খুবই গুরুত্বপূর্ণ, কারণ এটি স্ক্রিপ্টটির পাঠযোগ্যতা, রক্ষণাবেক্ষণযোগ্যতা এবং পুনঃব্যবহারযোগ্যতা নিশ্চিত করে। সঠিকভাবে কোড সজ্জিত এবং সংগঠিত করা হলে, আপনার স্ক্রিপ্ট আরো সহজে বর্ধিত করা যায় এবং ভবিষ্যতে কোনো ত্রুটি বা পরিবর্তন করলে তা আরও কার্যকরীভাবে সম্পন্ন করা যায়। এখানে কিছু প্র্যাকটিক্যাল টেকনিক্স দেওয়া হলো, যা Batch Script-এ ভালো স্ক্রিপ্ট স্ট্রাকচার এবং কোড অর্গানাইজেশন নিশ্চিত করতে সাহায্য করবে।
Batch Script-এর মধ্যে কোডের ব্যাখ্যা বা মন্তব্য সংযোজন করতে REM (Remark) এবং ::
ব্যবহার করা হয়। এটি স্ক্রিপ্টের মধ্যে কোডের উদ্দেশ্য ব্যাখ্যা করতে সহায়ক। যখন অন্য কেউ আপনার স্ক্রিপ্টটি পড়ে, তখন এটি তাকে কোডের কার্যকারিতা বুঝতে সাহায্য করবে।
REM এবং ::
এর মধ্যে পার্থক্য:
::
কমেন্ট লিখতে ব্যবহৃত হয় এবং এটি কোডের একেবারে শুরুতে রাখা ভালো। তবে কিছু ক্ষেত্রে, ::
এর সাথে কোনো পরবর্তী কোড থাকে না।REM This is a comment
:: This is also a comment
Indentation (ইনডেন্টেশন) একটি প্র্যাকটিস যা কোডের ভেতরের অংশগুলো পরিষ্কারভাবে আলাদা করতে সহায়ক। যদিও Batch Script-এ ইনডেন্টেশন বাধ্যতামূলক নয়, তবে এটি কোডের মধ্যে লজিক এবং ব্লকগুলির মধ্যে স্পষ্ট পার্থক্য তৈরি করে। সাধারণত if
, for
, goto
ইত্যাদির জন্য কোড ব্লক তৈরি করলে, সেগুলিকে সঠিকভাবে ইনডেন্ট করা উচিত।
if %errorlevel% equ 0 (
echo Command executed successfully.
) else (
echo Command failed with error level %errorlevel%.
)
একটি বড় Batch Script-এর কোডকে ছোট ছোট অংশে বিভক্ত করা গুরুত্বপূর্ণ, যাতে কোডটি পুনঃব্যবহারযোগ্য হয় এবং বিভিন্ন স্থানে একে ব্যবহার করা যায়। স্ক্রিপ্টের অংশবিশেষ যদি বারবার ব্যবহৃত হয়, তাহলে সেই অংশগুলোকে আলাদা ফাংশন বা সাবরুটিনে ভাগ করা যেতে পারে।
এটি স্ক্রিপ্টের পুনঃব্যবহারযোগ্যতা বাড়ায় এবং একে পরিচালনা করা সহজ করে তোলে।
:: This is a function to check disk space
:check_disk_space
echo Checking disk space...
:: Disk checking command here
goto :eof
ভেরিয়েবল ব্যবহারে পরিষ্কার নামকরণ এবং গঠনগত নিয়ম অনুসরণ করা কোডের পাঠযোগ্যতা বাড়ায়। একে খুব ভালোভাবে ব্যবহার করলে, কোডের মধ্যবর্তী ডেটা সহজে ট্র্যাক করা যায়।
user_name
, disk_usage
, file_count
ইত্যাদি।set user_name=John
echo Welcome, %user_name%
এছাড়া, কিছু ভেরিয়েবলকে পরিবেশগত ভেরিয়েবল (environment variables) হিসেবে ব্যবহার করুন, যা উইন্ডোজের সিস্টেমের সাথে সম্পর্কিত এবং প্রতিটি স্ক্রিপ্টে সাধারণ।
যখন একটি Batch Script বড় হয়ে ওঠে, তখন এটি অত্যন্ত গুরুত্বপূর্ণ হয়ে পড়ে যে আপনি Error Handling এর জন্য একটি স্পষ্ট এবং কার্যকরী স্ট্রাকচার তৈরি করুন। একটি Error Level চেক করে আপনি কোডের মধ্যে সফলতা বা ব্যর্থতা ট্র্যাক করতে পারেন।
উদাহরণস্বরূপ:
:: Run a command and check for errors
command_that_might_fail
if %errorlevel% neq 0 (
echo Error occurred with error level %errorlevel%
exit /b 1
)
Conditional Statements (if-else) এবং Loops (for, while) সঠিকভাবে গ্রুপ এবং গঠন করা স্ক্রিপ্টের কার্যকারিতা এবং কোড মেইনটেনেন্সের জন্য খুবই গুরুত্বপূর্ণ। একটি if বা for loop যখন জটিল হয়ে ওঠে, তখন তার অংশগুলোকে ঠিকভাবে সংগঠিত এবং শ্রেণীবদ্ধ করা উচিত।
:: Example of a nested loop with indentation
for %%i in (1 2 3) do (
echo Iteration %%i
for %%j in (a b c) do (
echo Inner loop %%j
)
)
একটি বড় স্ক্রিপ্টের মধ্যে খুব বেশি কোড থাকতে পারে, তাই যদি কিছু অংশ অন্য স্ক্রিপ্ট বা লাইব্রেরি থেকে নেওয়া যায়, তবে কোডকে ছোট ও পরিষ্কার রাখা সম্ভব হয়। call
কমান্ড ব্যবহার করে আপনি এক স্ক্রিপ্টের মধ্যে অন্য স্ক্রিপ্ট কল করতে পারেন।
:: Call another batch file
call script2.bat
এটি কোড পুনঃব্যবহারযোগ্যতার জন্য খুবই কার্যকরী।
স্ক্রিপ্টের শেষে সঠিকভাবে ক্লিন এক্সিট নিশ্চিত করুন যাতে স্ক্রিপ্ট সম্পূর্ণ হওয়ার পর কম্পিউটার বা প্রোগ্রাম সঠিকভাবে ফিরে আসতে পারে। এর জন্য exit
কমান্ড ব্যবহার করা হয়।
exit /b 0
এটি আপনাকে স্ক্রিপ্টের ফলাফল সহ সফল বা ত্রুটিপূর্ণভাবে প্রস্থান করতে সাহায্য করবে।
Batch Script লেখার সময় কোডের গঠন এবং সংগঠন খুবই গুরুত্বপূর্ণ। এটি কেবল কোডের কার্যকারিতা নিশ্চিত করে না, বরং স্ক্রিপ্টটি পরিচালনা, রক্ষণাবেক্ষণ এবং ভবিষ্যতে উন্নয়নেও সহায়ক হয়। সঠিকভাবে কমেন্ট ব্যবহার, ইনডেন্টেশন, ভেরিয়েবল নামকরণ, মডুলারাইজেশন, এবং এরর হ্যান্ডলিংয়ের কৌশলগুলো স্ক্রিপ্টকে আরও পাঠযোগ্য এবং মেইনটেনেবল করে তোলে। Batch Script-এর ক্ষেত্রে গঠন এবং সংগঠনের সঠিক পদ্ধতি অনুসরণ করে, আপনি কোডটির কার্যকারিতা এবং সিস্টেম রিসোর্স ব্যবহারও অনেকটা উন্নত করতে পারবেন।
Batch scripting এ modularity এবং reusability নিশ্চিত করা খুবই গুরুত্বপূর্ণ, বিশেষত যখন আপনি বড় আকারের স্ক্রিপ্ট তৈরি করছেন যা বিভিন্ন কাজ একসাথে সম্পাদন করে। স্ক্রিপ্টটি যদি একে অপরের সাথে জড়িত থাকে এবং কমপ্লেক্স হয়, তবে এর মেইনটেনেন্স এবং আপডেট করা কঠিন হতে পারে। কিন্তু কিছু কৌশল ব্যবহার করে, আপনি আপনার Batch Scripts কে আরো modular এবং reusable করে তুলতে পারেন, যাতে এগুলো পুনরায় ব্যবহার করা যায় এবং সহজে মডিফাই করা যায়।
এখানে কিছু কৌশল আলোচনা করা হবে যা Batch Files কে modularity এবং reusability প্রদান করতে সাহায্য করবে।
Batch Script এ কোনো ধরনের ফাংশন বা সাবরুটিন সরাসরি সমর্থিত না হলেও, আপনি কিছু কৌশল ব্যবহার করে এই ধারণাগুলি বাস্তবায়ন করতে পারেন। সবচেয়ে সাধারণ কৌশল হল CALL
কমান্ড ব্যবহার করা, যা একটি পৃথক অংশ বা লেবেল (Label) থেকে কোড এক্সিকিউট করতে সক্ষম করে।
উদাহরণ:
@echo off
:: Main Program
echo Running main script...
call :ProcessData
echo Back to main script...
goto :EOF
:: Subroutine: ProcessData
:ProcessData
echo Processing Data...
:: Any task or set of commands to handle data can go here
goto :EOF
এখানে:
call :ProcessData
কমান্ডটি একটি সাবরুটিন (:ProcessData
লেবেল) কল করবে।goto :EOF
কমান্ডটি সাবরুটিনটি শেষ করার পর স্ক্রিপ্টের মূল অংশে ফিরে আসবে।এই কৌশল Batch Script কে modular বানায়, কারণ আপনি একাধিক সাবরুটিন বা ফাংশন তৈরি করতে পারেন এবং সেগুলিকে বিভিন্ন জায়গায় পুনরায় ব্যবহার করতে পারেন।
Batch Script এ labels ব্যবহার করে আপনি একটি স্ক্রিপ্টের মধ্যে বিভিন্ন অংশ আলাদা করে রাখতে পারেন। এগুলি সাবরুটিনের মতো কাজ করে এবং একাধিক স্থানে পুনরায় ব্যবহার করা যায়।
উদাহরণ:
@echo off
echo Starting Process...
call :Task1
call :Task2
call :Task3
echo Process Complete.
goto :EOF
:: Task 1
:Task1
echo Performing Task 1...
goto :EOF
:: Task 2
:Task2
echo Performing Task 2...
goto :EOF
:: Task 3
:Task3
echo Performing Task 3...
goto :EOF
এখানে:
Task1
, Task2
, Task3
) আছে এবং এগুলিকে পৃথক লেবেলগুলির মাধ্যমে সংজ্ঞায়িত করা হয়েছে।call
কমান্ড ব্যবহার করে, আপনি একাধিক জায়গায় একই টাস্ক পুনরায় কল করতে পারবেন।আপনার Batch Scripts কে reusable এবং modular বানানোর আরেকটি উপায় হল একাধিক স্ক্রিপ্ট ফাইল তৈরি করা এবং এক ফাইলের মধ্যে অন্য ফাইলকে call করা। এতে স্ক্রিপ্টের পুনঃব্যবহারযোগ্যতা বাড়ে এবং একটি বড় স্ক্রিপ্টের অংশগুলো পৃথক ফাইলে রাখা সহজ হয়।
উদাহরণ:
:: Main Batch File (main.bat)
@echo off
echo Running main script...
call task1.bat
call task2.bat
echo Process complete.
এখানে, main.bat
স্ক্রিপ্টটি দুটি অন্য স্ক্রিপ্ট ফাইল (task1.bat
এবং task2.bat
) কল করছে। আপনি প্রতিটি স্ক্রিপ্ট ফাইলের মধ্যে বিভিন্ন কাজ সংজ্ঞায়িত করতে পারেন এবং সেই কাজগুলো পুনরায় ব্যবহার করতে পারবেন।
যখন আপনি Batch Files তৈরি করেন, তখন parameters বা আর্গুমেন্ট ব্যবহার করে স্ক্রিপ্টকে আরো reusable বানানো যায়। একে আপনি স্ক্রিপ্টে ভ্যালু পাস করে বিভিন্ন কাজ করতে পারেন। এর মাধ্যমে, আপনি স্ক্রিপ্টে একই কমান্ড চালানোর জন্য আলাদা আলাদা ইনপুট বা কনফিগারেশন প্রদান করতে পারবেন।
উদাহরণ:
@echo off
:: Accepting parameters
echo Hello, %1! Welcome to the batch script.
echo Performing Task: %2
:: Example usage:
:: batchfile.bat John Backup
এখানে:
%1
এবং %2
স্ক্রিপ্টের আর্গুমেন্ট হিসেবে পাস করা হয়। প্রথম আর্গুমেন্ট হলো নাম (যেমন "John") এবং দ্বিতীয় আর্গুমেন্ট হলো কাজ (যেমন "Backup")।আপনি যখন Batch Script তৈরি করেন, তখন Error Handling এবং Logging কৌশল ব্যবহার করা উচিত যাতে স্ক্রিপ্টটি যদি কোনো সমস্যা বা ত্রুটি পায়, তাহলে সেটি লগ ফাইলে সংরক্ষিত হয় এবং আপনি পরবর্তীতে সেগুলো দেখে সমস্যা সমাধান করতে পারেন।
উদাহরণ:
@echo off
set LOGFILE=C:\batch_log.txt
echo Starting Process... >> %LOGFILE%
call :Task1 >> %LOGFILE% 2>&1
call :Task2 >> %LOGFILE% 2>&1
echo Process Finished >> %LOGFILE%
goto :EOF
:: Task1
:Task1
echo Performing Task 1...
goto :EOF
:: Task2
:Task2
echo Performing Task 2...
goto :EOF
এখানে:
>> %LOGFILE%
ব্যবহার করে স্ক্রিপ্টের আউটপুট এবং ত্রুটি লগ ফাইলে লেখা হয়।2>&1
ব্যবহার করে ত্রুটিও লগ করা হয়, যা সাধারণত স্ক্রিপ্টে ঘটে থাকে।Batch Scripts এর মধ্যে include কমান্ড দিয়ে আপনি একটি স্ক্রিপ্টের মধ্যে অন্য একটি স্ক্রিপ্ট বা কোড অংশ অন্তর্ভুক্ত করতে পারেন। এটি পুনঃব্যবহারযোগ্য কোড তৈরি করতে সহায়ক।
উদাহরণ:
:: Main script (main.bat)
@echo off
echo Starting main script...
call :IncludeScript
echo Main script finished.
goto :EOF
:: Include script (include.bat)
:IncludeScript
echo This is the included script!
goto :EOF
এখানে:
main.bat
স্ক্রিপ্টে call :IncludeScript
দিয়ে include.bat
স্ক্রিপ্টটি কল করা হয়েছে।Batch Script এ modularity এবং reusability নিশ্চিত করার জন্য অনেকগুলো কৌশল রয়েছে, যেমন ফাংশন এবং সাবরুটিনের ব্যবহার, লেবেল এবং এক্সটার্নাল স্ক্রিপ্ট কল করা, প্যারামিটার ব্যবহার করা এবং লগিং ও এরর হ্যান্ডলিং টেকনিক। এসব কৌশল Batch Script কে আরও কার্যকর, পুনরায় ব্যবহারযোগ্য এবং সহজে রক্ষণাবেক্ষণযোগ্য করে তোলে।
Batch Script-এর মধ্যে একাধিক স্ক্রিপ্ট ফাইলকে একত্রে ব্যবহার করার একটি সাধারণ পদ্ধতি হলো Include এবং External Batch File কল করা। এর মাধ্যমে একটি স্ক্রিপ্টের মধ্যে অন্য স্ক্রিপ্ট বা ফাংশনগুলো অন্তর্ভুক্ত করা যায়, যা কোডের পুনঃব্যবহারযোগ্যতা এবং মডুলারিটি নিশ্চিত করে।
একটি Batch স্ক্রিপ্টের মধ্যে অন্য একটি Batch স্ক্রিপ্ট কল করতে, call
কমান্ড ব্যবহার করা হয়। এটি অন্য স্ক্রিপ্ট চালানোর জন্য ব্যবহৃত হয় এবং মূল স্ক্রিপ্টটির কার্যক্রমের পরে ফেরত আসে। এর মাধ্যমে একাধিক স্ক্রিপ্ট একসাথে পরিচালনা করা যায়, বিশেষত যখন আপনি একাধিক ধাপে কাজ করছেন।
call C:\path\to\external_script.bat
এখানে:
call
কমান্ডটি ব্যবহার করে স্ক্রিপ্টটি কল করা হয়েছে।external_script.bat
হল সেই Batch ফাইল, যেটি আপনি কল করতে চান।Batch স্ক্রিপ্টে সরাসরি Include পদ্ধতি নেই, কিন্তু আপনি call
কমান্ডের মাধ্যমে স্ক্রিপ্টের মধ্যে অন্য স্ক্রিপ্ট যুক্ত করতে পারেন। তবে, কিছু টেকনিক্যাল পদ্ধতি ব্যবহার করে একটি স্ক্রিপ্টকে আরেকটি স্ক্রিপ্টের মধ্যে অন্তর্ভুক্ত করা সম্ভব। এক্ষেত্রে, যেহেতু Batch স্ক্রিপ্টের মধ্যে কোনো আনুষ্ঠানিক include কমান্ড নেই, আপনি অন্যান্য ফাইলের কোডকে কল বা পুনঃব্যবহার করতে পারেন।
call C:\path\to\included_script.bat
এই পদ্ধতিতে, যেকোনো স্ক্রিপ্টের কোড ব্যবহার করা যাবে যা অন্যান্য স্ক্রিপ্টের মধ্যে প্রয়োগ করতে চান।
আপনি যদি একটি নির্দিষ্ট ফাংশন বা সাব-রুটিন একাধিক স্ক্রিপ্টে ব্যবহার করতে চান, তাহলে external batch file ব্যবহার করে সেই ফাংশন কল করতে পারেন। এ ক্ষেত্রে, ফাংশনটি একবার তৈরি করার পর যেকোনো স্ক্রিপ্ট থেকে call
কমান্ড দিয়ে কল করা যাবে।
external_function.bat:
@echo off
:my_function
echo This is a function from an external batch file!
goto :eof
main_script.bat:
@echo off
call C:\path\to\external_function.bat
echo Back to main script!
এখানে:
external_function.bat
ফাইলটি একটি ফাংশন সংজ্ঞায়িত করেছে।goto :eof
দিয়ে ফাংশনটি শেষ হচ্ছে, যা মূল স্ক্রিপ্টে ফিরে আসতে সাহায্য করে।call
কমান্ডের মাধ্যমে external_function.bat
কে কল করা হচ্ছে।একটি স্ক্রিপ্টের মধ্যে কল করা অন্য স্ক্রিপ্টের মধ্যে পরিবেশগত পরিবর্তনশীল (Environment Variables) শেয়ার করতে, সাধারণত কোনো পার্থক্য থাকে না, কারণ Batch স্ক্রিপ্টে Environment Variables পুরো সিস্টেমের জন্য গ্লোবাল। তবে, আপনি যদি কিছু ভেরিয়েবল কল করা স্ক্রিপ্টে পরিবর্তন করতে চান, তা হলে সেই ভেরিয়েবলটি set
কমান্ড দিয়ে নির্ধারণ করতে হবে।
set MY_VAR=Hello
call C:\path\to\external_script.bat
echo %MY_VAR%
এখানে:
MY_VAR
নামক Environment Variable সেট করা হয়েছে এবং external_script.bat
কল করা হয়েছে।MY_VAR
এর মান পরিবর্তন বা ব্যবহার করা যেতে পারে।Batch স্ক্রিপ্টে External File ব্যবহারের আরেকটি সুবিধা হলো কোডের মডুলারিটি। আপনি যদি একাধিক স্ক্রিপ্টে একে অপরকে কল করেন, তাহলে বড় স্ক্রিপ্টটি ছোট ছোট অংশে বিভক্ত করা সম্ভব হয়। এতে স্ক্রিপ্টের রক্ষণাবেক্ষণ সহজ হয়ে ওঠে এবং পুনরায় ব্যবহারযোগ্য কোড তৈরি করা যায়।
এমনকি, একাধিক কাজ বা স্ক্রিপ্টের জন্য একটি Common Functions স্ক্রিপ্ট তৈরি করা যেতে পারে, যা অন্যান্য স্ক্রিপ্টে call
করে ব্যবহার করা যাবে।
functions.bat (Common Functions):
@echo off
:: Function 1
:hello_world
echo Hello, World!
goto :eof
:: Function 2
:goodbye_world
echo Goodbye, World!
goto :eof
main_script.bat (Main Script):
@echo off
call C:\path\to\functions.bat
call :hello_world
call :goodbye_world
এখানে:
functions.bat
ফাইলটি সাধারণ ফাংশনগুলো ধারণ করে।main_script.bat
ফাইলটি সেই ফাংশনগুলো কল করছে এবং ব্যবহৃত হচ্ছে।Batch স্ক্রিপ্টে Include এবং External Batch File কল করা একটি গুরুত্বপূর্ণ টেকনিক যা কোডের পুনঃব্যবহারযোগ্যতা এবং মডুলারিটি নিশ্চিত করে। call
কমান্ড ব্যবহার করে আপনি এক স্ক্রিপ্টের মধ্যে অন্য স্ক্রিপ্ট অথবা ফাংশন কল করতে পারেন। এটি স্ক্রিপ্টের আর্কিটেকচার সহজ এবং পরিষ্কার রাখে, এবং বিভিন্ন স্ক্রিপ্টের মধ্যে কোড শেয়ার করা সম্ভব করে।
common.read_more